<!-- 

    1 简述什么是React(概念)： React 是一个由 Facebook（现 Meta）创建并开源的用于构建用户界面的 JavaScript 库
        JSX
        组件化
        虚拟DOM
        单项数据流
    2 React有什么特点
        除了上面的几点 ，
        还有高性能，
        跨平台支持React DOM(web), React Native(移动端)， 桌面的Electron
        强大生态

    3 什么是JSX
        是一种 JavaScript 的语法扩展，允许你在 JavaScript 代码中编写类似 HTML 或 XML 的结构。它并不是标准的 JavaScript，
        而是 React 团队引入的一种语法糖，用于更直观、简洁地创建 React 元素

    4 虚拟DOM的概念和机制
        虚拟 DOM 是对真实 DOM 的抽象表示，以 JavaScript 对象的形式存在。
        它描述了真实 DOM 节点的标签名、属性、子节点等结构信息
        这是真实dom：<div class="title">Hello</div>
        虚拟Dom: {
                    type: 'div',
                    props: { className: 'title' },
                    children: ['Hello']
                }
        二、为什么需要虚拟 DOM？
            直接操作真实 DOM 非常昂贵，因为：

            DOM 操作慢，涉及页面重排（reflow）和重绘（repaint）；
            频繁更新会导致性能瓶颈。
            虚拟 DOM 的出现，是为了最小化对真实 DOM 的操作次数和范围。

        React 的更新过程遵循以下四个关键步骤：

        首次渲染：生成虚拟 DOM
            React 将组件的 JSX 转换为虚拟 DOM 树；
            然后将其渲染为真实 DOM，插入页面。
        状态更新（如 setState）
            当组件状态（state）或属性（props）发生变化时，组件会重新渲染；
            React 会生成一个新的虚拟 DOM 树。
        Diff 算法（Reconciliation）
            React 将新旧两棵虚拟 DOM 树进行对比（称为 “diffing”）；
            找出发生变化的最小部分（哪些节点需要增删改）；
            React 使用高效的启发式算法（如基于 key 的列表对比、层级比较等）来优化 diff 过程。
        批量更新真实 DOM
            React 将 diff 的结果一次性应用到真实 DOM 上，只更新必要的部分；
            避免了全量渲染，极大提升性能



    5 react的优缺点
        优点上面说了
        缺点如下: 
            学习曲线较陡
            只是一个视图层，不提供路由、状态管理
            频繁更新带来维护成本，需要不断学习

    6 类组件和函数组件的区别
        定义方式
        状态
        生命周期
        类组件有this指向,函数没有
        类代码冗长
        函数简洁

    7 react 的refs的作用
        访问 DOM 元素 import React, { useRef } from 'react';
        保存可变值  const timerRef = useRef(null);可以存储 setTimeout ID 等 

    8 简述React store的概念

    9 解释浏览器为啥不能读取 JSX

    10请列举 ES5相比 react 的 es6语法有何不同

    11请介绍React 中key有什么作用

    12 列举常用的react hooks

    13 react 和 vue的相似性和差异性

    14 什么是受控组件和非受控组件

    15 react hooks的使用限制有哪些

    16 react.props.children 和 react.children的区别

    17 react Router时 如何获取当前页面的路由或者浏览器的中的地址

-->